/*
 * opxx.h
 *
 * Copyright (c) 2009, Eugen Stoian <stoian.e@gmail.com>
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 3 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 * http://www.fsf.org/licensing/licenses/lgpl.txt
 */

#ifndef OPSBASE_H_
#define OPSBASE_H_
#ifdef __cplusplus
extern "C" {
#endif

void v_addv_ps(int n, float const * op1, float const * op2, float * result);
void v_subv_ps(int n, float const * op1, float const * op2, float * result);
void v_mulv_ps(int n, float const * op1, float const * op2, float * result);
void v_divv_ps(int n, float const * op1, float const * op2, float * result);
void v_muls_ps(int n, float const * op1, float op2, float * result);
void v_muls_addv_ps(int n, float const * op1, float op2, float const * op3, float * result);
float v_dotv_ps(int n, float const * op1, float const * op2);

void v_addv_pd(int n, double const * op1, double const * op2, double * result);
void v_subv_pd(int n, double const * op1, double const * op2, double * result);
void v_mulv_pd(int n, double const * op1, double const * op2, double * result);
void v_divv_pd(int n, double const * op1, double const * op2, double * result);
void v_muls_pd(int n, double const * op1, double op2, double * result);
void v_muls_addv_pd(int n, double const * op1, double op2, double const * op3, double * result);
double v_dotv_pd(int n, double const * op1, double const * op2);

#ifdef __cplusplus
}
#endif

#endif /* OPSBASE_H_ */
